package common

import (
	"sync/atomic"
)

var GlobalCounter = atomicAccumulator{}

type atomicAccumulator struct {
	value int64
}

// NewatomicAccumulator 创建原子累加器（初始值为0）
func NewatomicAccumulator() *atomicAccumulator {
	return &atomicAccumulator{}
}

// Add 原子增加指定数值并返回最新累加结果
func (a *atomicAccumulator) Add(inc int64) int64 {
	return atomic.AddInt64(&a.value, inc)
}

// Value 安全读取当前值（无需额外加锁）
func (a *atomicAccumulator) Value() int64 {
	return atomic.LoadInt64(&a.value)
}
